home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / dev / obero / OberonAModules.lha / VMemory.mod < prev    next >
Text File  |  1999-02-26  |  2KB  |  112 lines

  1. (*VMemory.library Module Translated from C Includes
  2.   By Morten Bjergstrøm
  3.   EMail: mbjergstroem@hotmail.com
  4. *)
  5.  
  6. <* STANDARD- *>
  7. MODULE VMemory;
  8.  
  9. IMPORT
  10.   e:=Exec, Kernel;
  11.  
  12. CONST
  13.   VMEMORYNAME="vmemory.library";
  14.   VMEMORYVERSION=1;
  15.  
  16.  
  17. TYPE
  18.   VMemoryBase * = RECORD
  19.     LibNode- :e.Library;
  20.     SysLib*  :e.APTR;
  21.     DosLib-  :e.APTR;
  22.     TBase-   :e.APTR;
  23.     TCount-  :e.ULONG;
  24.     NEntry-  :e.APTR;
  25.     NIndex-  :e.ULONG;
  26.     OldIndex-:e.ULONG;
  27.     PagePath-:e.APTR;
  28.     RenPath- :e.APTR;
  29.     PageName-:e.APTR;
  30.     SegList* :e.APTR;
  31.     Flags*   :e.UBYTE;
  32.     Pad*     :e.UBYTE;
  33.   END;
  34.  
  35.   VMemoryEntry * = RECORD
  36.     Index*  :e.ULONG;
  37.     Size*   :e.ULONG;
  38.     Adresse*:e.APTR;
  39.   END;
  40.  
  41. CONST
  42.   vmemOk=0;
  43.   vmemTableFull=-1;
  44.   vmemNoPrefsFile=-2;
  45.   vmemNoStartMemory=-3;
  46.   vmemNoFileOpen=-4;
  47.   vmemFailWrite=-5;
  48.   vmemNoEmptyEntry=-6;
  49.   vmemNoEntryFreed=-7;
  50.   vmemFailRead=-8;
  51.   vmemNoEntryFound=-9;
  52.   vmemPageOccupied=-10;
  53.  
  54. VAR
  55.   base-:e.LibraryPtr;
  56.  
  57.  
  58. PROCEDURE AllocVMem* [base,-30]
  59.   (MemBlock     [8] : e.APTR;
  60.    MemBlockSize [0] : e.ULONG)
  61.   : e.ULONG;
  62.  
  63. PROCEDURE FreeVMem* [base,-36]
  64.   (IndexNum [0] : e.ULONG)
  65.   : e.ULONG;
  66.  
  67. PROCEDURE ReadVMem* [base,-42]
  68.   (IndexNum [0] : e.ULONG)
  69.   : e.ULONG;
  70.  
  71. PROCEDURE WriteVMem* [base,-48]
  72.   (IndexNum [0] : e.ULONG)
  73.   : e.ULONG;
  74.  
  75. PROCEDURE RenamePage* [base,-54]
  76.   (OldIndex [0] : e.ULONG;
  77.    NewIndex [1] : e.ULONG)
  78.   : e.ULONG;
  79.  
  80. PROCEDURE SwapVMem* [base,-60]
  81.   (IndexNum [0] : e.ULONG)
  82.   : e.ULONG;
  83.  
  84. PROCEDURE AvailVMem* [base,-66]
  85.   ()
  86.   : e.ULONG;
  87.  
  88. PROCEDURE LBinHex* [base,-72]
  89.   (Space  [8] : e.APTR;
  90.    Number [0] : e.ULONG);
  91.  
  92. PROCEDURE ReadPath* [base,-78]
  93.   ();
  94.  
  95.  
  96.  
  97.  
  98. PROCEDURE* [0] CloseLib (VAR rc : LONGINT);
  99.  
  100. BEGIN (* CloseLib *)
  101.   IF base # NIL THEN e.CloseLibrary (base) END
  102. END CloseLib;
  103.  
  104.  
  105. BEGIN
  106.  
  107.   base := e.OpenLibrary (VMEMORYNAME, VMEMORYVERSION);
  108.  
  109.   IF base # NIL THEN Kernel.SetCleanup (CloseLib) END;
  110.  
  111. END VMemory.
  112.